package com.own.business.sync.trigger.base.config;

import com.own.business.sync.trigger.base.common.TypeConstantEnum;

/**
 * SyncTriggerMethod
 *
 * @author chenxueli
 * @date 2024-01-08 16:48:00
 */
public interface SyncTriggerMethod {

    /**
     * 保存信息
     *
     * @param targetId   源数据id
     * @param type       操作类型 TypeConstantEnum
     * @param moduleName 操作模块
     */
    default void add(Long targetId, TypeConstantEnum type, String moduleName) {
        add(targetId, type, moduleName, null, null);
    }

    /**
     * 保存信息
     *
     * @param targetId   源数据id
     * @param type       操作类型 TypeConstantEnum
     * @param moduleName 操作模块
     * @param oldStatus  旧状态
     * @param newStatus  新状态
     */
    default void add(Long targetId, TypeConstantEnum type, String moduleName, Integer oldStatus, Integer newStatus) {
        add(targetId, type.getType(), moduleName, oldStatus, newStatus);
    }

    /**
     * 保存信息
     *
     * @param targetId   源数据id
     * @param type       操作类型 1=插入 2=修改 3=删除
     * @param moduleName 操作模块
     */
    default void add(Long targetId, int type, String moduleName) {
        add(targetId, type, moduleName, null, null);
    }

    /**
     * 保存信息
     *
     * @param targetId   源数据id
     * @param type       操作类型 1=插入 2=修改 3=删除
     * @param moduleName 操作模块
     * @param oldStatus  旧状态
     * @param newStatus  新状态
     */
    void add(Long targetId, int type, String moduleName, Integer oldStatus, Integer newStatus);

}
